<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>uupaa-imgsrc.js - Reference</title>
<style type="text/css">@import url(./README.css);</style>
<script type="text/javascript" src="http://uupaa-js-spinoff.googlecode.com/svn/trunk/uupaa-detect.js/uupaa-detect.mini.js"></script>
<script type="text/javascript" src="uupaa-imgsrc.js"></script>
</head>
<body>
<p>
   | <a href="http://code.google.com/p/uupaa-js-spinoff/">Project Home(Google Code)</a>
   | <a href="./README.htm">README</a>
   | <a href="./CLASS.htm">Reference</a> |<br />
   | <a href="./CHANGELOG.htm">ChangeLog</a>
   | <a href="./LICENSE.htm">License</a>
   | <a href="http://uupaa-js.googlecode.com/svn/trunk/GLOSSARY.htm">Glossary</a>
   |
</p>

<hr />
|
<a href="#uu.imgsrc">uu.imgsrc</a> |
<a href="#uuClass.ImgSrc">uuClass.ImgSrc</a> |
<a href="#uuClass.ImgSrcDictionary">uuClass.ImgSrcDictionary</a> |

<hr />
<h2><a name="uuClass.ImgSrc">ImgSrc</a></h2>
<p>画像の URL を管理する I/F を提供します。</p>
<hr />
<dl>
<!-- -->
  <dt><a name="uu.imgsrc">uu.imgsrc</a> - uuClass.ImgSrc factory</dt>
  <dd><p>uu.imgsrc(<i>src</i>) は
      new uuClass.ImgSrc(<i>src</i>) を実行するファクトリです。
      <br />使用可能な引数等は、<a href="#uuClass.ImgSrc.construct">uuClass.ImgSrc.construct</a> を参照してください。
  </dd>
<!-- -->
  <dt><a name="uuClass.ImgSrc.construct">uuClass.ImgSrc.construct</a> - create stack</dt>
  <dd><p>uuClass.ImgSrc.construct(<i>src</i>) は
      インスタンスを生成し、画像のURL(<i>src</i>)を保持するスタックを生成します。
      <br />スタックは、URL を文字列で保持します。</p>
      <p>uuClass.ImgSrc のインスタンスを <i>src</i> に指定すると、インスタンスが持つスタックを全てコピーします。</p>
      <p>パスは絶対URL( "http://example.com/file.ext") か 相対URL( "file.ext" ) で指定します。</p>
      <p>uuClass.ImgSrcDictionary に登録されていない URL を指定すると、画像を自動的にダウンロードしキャッシュします。</p>
<pre>
@param String            src  - 画像のURLを文字列で指定します。
       /uuClass.ImgSrc          undefined を指定すると空のスタックで初期化します。
       /JointedString           以下の型も指定可能です。
       /Array                   1. uuClass.ImgSrc - インスタンスを指定する
                                2. JointedString( "file1.ext;file2.ext" ) - 複数のURLをセミコロン( ";" )
                                   JointedString( "file1.ext,file2.ext" )     またはカンマ( "," )で区切り一度に指定する
                                3. Array( [ "file1.ext", "file2.ext" ] ) - 複数のURLを配列で一度に指定する
</pre>
      <p><a href="javascript:var c = uu.imgsrc();alert(c.size());alert(uu.imgsrc(1).size());void 0" class="run">RUN</a>
         引数を指定しない場合や引数が無効な場合は、空のスタックを持つインスタンスが生成されます。</p>
<pre class="eg">
var c = uu.imgsrc(); <u>// 空のスタックを持つインスタンスが生成される</u>
alert(c.size()); <u>// 0</u>
alert(uu.imgsrc(1).size()); <u>// 0, 無効な URL なのでスタックは空になる</u>
</pre>

      <p><a href="javascript:alert(uu.imgsrc('img/i32.png,img/f32.png').size());alert(uu.imgsrc(['img/i32.png', 'img/f32.png']).size());void 0" class="run">RUN</a>
         "img/i32.png" と "img/f32.png" をスタックに積みます。配列を使った初期化もできます。</p>
<pre class="eg">
alert(uu.imgsrc('img/i32.png,img/f32.png').size()); <u>// 2</u>
alert(uu.imgsrc(['img/i32.png', 'img/f32.png']).size()); <u>// 2</u>
</pre>

      <p><a href="javascript:var c1 = uu.imgsrc('img/i32.png');var c2 = uu.imgsrc(c1);alert('c1.top=' + c1 + ' c1.size=' + c1.size());alert('c2.top=' + c2 + ' c2.size=' + c2.size());void 0" class="run">RUN</a>
          uuClass.ImgSrc のインスタンスを指定すると、スタックをコピーします。</p>
<pre class="eg">
var c1 = uu.imgsrc('img/i32.png');
var c2 = uu.imgsrc(c1); <u>// copy</u>
alert('c1.top=' + c1 + ' c1.size=' + c1.size()); <u>// c1.top="<i>path</i>/img/i32.png c1.size=1</u>
alert('c2.top=' + c2 + ' c2.size=' + c2.size()); <u>// c2.top="<i>path</i>/img/i32.png c2.size=1</u>
</pre>
  </dd>
<!-- -->
  <dt><a name="uuClass.ImgSrc.push">uuClass.ImgSrc.push</a> - push stack</dt>
  <dd><p>uuClass.ImgSrc.push(<i>src</i>) は
      <i>src</i> をトップスタックに積みます。</p>
      <p>uuClass.ImgSrc のインスタンスを引数 <i>src</i> に指定すると、インスタンスが持つスタックをコピーし、順にトップスタックに積みます。</p>
<pre>
@param String            src  - 画像のURLを文字列で指定します。
       /uuClass.ImgSrc          undefined を指定すると空のスタックで初期化します。
       /JointedString           以下の型も指定可能です。
       /Array                   1. uuClass.ImgSrc - インスタンスを指定する
                                2. JointedString( "file1.ext;file2.ext" ) - 複数のURLをセミコロン( ";" )
                                   JointedString( "file1.ext,file2.ext" )     またはカンマ( "," )で区切り一度に指定する
                                3. Array( [ "file1.ext", "file2.ext" ] ) - 複数のURLを配列で一度に指定する
@return this                  - this を返します。
</pre>

      <p><a href="javascript:var c1=uu.imgsrc(['img/i32.png', 'img/f32.png']);c1.push(c1).forEach(function(v, i){alert(v);});void 0" class="run">RUN</a>
          自分自身のインスタンスを指定すると、スタック数が倍になります。</p>
<pre class="eg">
var c1 = uu.imgsrc(['img/i32.png', 'img/f32.png']);
c1.<b>push</b>(<b>c1</b>).forEach(function(v, i) {
  alert(v); <u>// "<i>path</i>/img/i32.png", "<i>path</i>/img/f32.png", "<i>path</i>/img/i32.png", "<i>path</i>/img/f32.png"</u>
});
</pre>
  </dd>
<!-- -->
  <dt><a name="uuClass.ImgSrc.pop">uuClass.ImgSrc.pop</a> - pop stack</dt>
  <dd><p>uuClass.ImgSrc.pop() は トップスタックを削除し、削除したスタックを返します。</p>
      <p>スタックが空の状態で pop() を行うと、空文字列( "" )を返します。</p>
<pre>
@return String - URL を返します。
                 スタックが空なら空文字列( "" )を返します。
</pre>
  </dd>
<!-- -->
  <dt><a name="uuClass.ImgSrc.clear">uuClass.ImgSrc.clear</a> - clear stack</dt>
  <dd><p>uuClass.ImgSrc.clear() は スタックを空(サイズをゼロ)にします。</p>
<pre>
@return this - this を返します。
</pre>
  </dd>
<!-- -->
  <dt><a name="uuClass.ImgSrc.size">uuClass.ImgSrc.size</a> - get stack size</dt>
  <dd><p>uuClass.ImgSrc.size() は スタックサイズを返します。</p>
<pre>
@return Number - スタックサイズを返します。スタックが空の状態なら0を返します。
</pre>
  </dd>
<!-- -->
  <dt><a name="uuClass.ImgSrc.empty">uuClass.ImgSrc.empty</a> - is Empty stack</dt>
  <dd><p>uuClass.ImgSrc.empty() は スタックが空なら true を返します。</p>
<pre>
@return Number - スタックが空なら true を、違うなら false を返します。
</pre>
  </dd>
<!-- -->
  <dt><a name="uuClass.ImgSrc.top">uuClass.ImgSrc.top</a> - get top stack</dt>
  <dd><p>uuClass.ImgSrc.top() は <a href="http://uupaa-js.googlecode.com/svn/trunk/GLOSSARY.htm#StackNumber">トップスタック</a>の URL を返します。</p>
<pre>
@return String - URL を返します。
                 スタックが空なら空文字列( "" )を返します。
</pre>
  </dd>
<!-- -->
  <dt><a name="uuClass.ImgSrc.bottom">uuClass.ImgSrc.bottom</a> - get bottom stack</dt>
  <dd><p>uuClass.ImgSrc.bottom() は <a href="http://uupaa-js.googlecode.com/svn/trunk/GLOSSARY.htm#StackNumber">ボトムスタック</a>の URL を返します。</p>
<pre>
@return String - URL を返します。
                 スタックが空なら空文字列( "" )を返します。
</pre>
  </dd>
<!-- -->
  <dt><a name="uuClass.ImgSrc.ref">uuClass.ImgSrc.ref</a> - get n stack</dt>
  <dd><p>uuClass.ImgSrc.ref(<i>n</i> = undefined) は <i>n</i> 番目のスタックの URL を返します。</p>
      <p>存在しないスタックを指定した場合は、空文字列( "" )を返します。</p>
      <p>スタック番号(n)には0から始まる整数を指定します。</p>
<pre>
@param Number [n] - スタック番号を指定します。デフォルトは undefined です。
                    undefined を指定するとトップスタックの URL を返します。
@return String    - URL を返します。
                    スタックが空なら空文字列( "" )を返します。
</pre>
      <p>トップスタックのスタック番号は、 <a href="#uuClass.Color.size">size</a>() - 1 で求めることができます。
      <br />ボトムスタックのスタック番号は、0 です。</p>
  </dd>
<!-- -->
  <dt><a name="uuClass.ImgSrc.loading">uuClass.ImgSrc.loading</a> - preloading image count - プリロード中の画像数</dt>
  <dd><p>uuClass.ImgSrc.loading() は 自動的に読み込みを行っている最中の画像の数を返します。</p>
<pre>
@return Number - 0 以上の数値を返します。読み込みを行っていない場合は 0 を返します。
</pre>
  </dd>
<!-- -->
  <dt><a name="uuClass.ImgSrc.forEach">uuClass.ImgSrc.forEach</a> - stack iteration</dt>
  <dd><p>uuClass.ImgSrc.forEach(<i>fn</i>, <i>me</i> = undefined) は
      全スタックに対し、<i>fn</i>.call(<i>me</i>, スタック[index], index, スタック) を実行します。</p>
<pre>
@param Function fn   - 各スタックを評価する関数を指定します。
@param this     [me] - fn 実行時の this を指定します。デフォルトは undefined です。
@return this         - this を返します。
</pre>
<p><a href="javascript:uu.imgsrc('img/i32.png').push('img/s32.png').push('img/o32.png').forEach(function(v,i){alert(v);});void 0" class="run">RUN</a>
   スタックの中身を順番に受け取ります。</p>
<pre class="eg">
uu.imgsrc('img/i32.png').push('img/s32.png').push('img/o32.png').<b>forEach</b>(function(v, i) {
  alert(v); <u>// "<i>path</i>/img/i32.png", "<i>path</i>/img/s32.png", "<i>path</i>/img/o32.png"</u>
});
</pre>
  </dd>
<!-- -->
  <dt><a name="uuClass.ImgSrc.toString">uuClass.ImgSrc.toString</a> - get URL string</dt>
  <dd><p>uuClass.ImgSrc.toString() は <a href="#uuClass.ImgSrc.ref">ref</a>() と同じ結果になります。</p>
  </dd>

</dl>


<hr />
<h2><a name="uuClass.ImgSrcDictionary">ImgSrcDictionary</a></h2>
<p>画像の URL 専用の辞書を提供します。</p>
<p>uuClass.ImgSrcDictionary は<a href="http://uupaa-js.googlecode.com/svn/trunk/GLOSSARY.htm#Singleton">シングルトン</a>クラスです。</p>
<hr />
<dl>
<!-- -->
  <dt><a name="uuClass.ImgSrcDictionary.construct">uuClass.ImgSrcDictionary.construct</a> - create dictionary - 辞書の生成</dt>
  <dd><p>uuClass.ImgSrcDictionary.construct() は 辞書を初期化します。</p>
  </dd>
<!-- -->
  <dt><a name="uuClass.ImgSrcDictionary.addColor">uuClass.ImgSrcDictionary.add</a> - add URL - URL を追加</dt>
  <dd><p>uuClass.ImgSrcDictionary.add(<i>absURL</i>, <i>code404</i>) は <i>absURL</i> を辞書に追加登録します。</p>
<pre>
@param String absURL   - 絶対URL( "http://example.com/file.ext" )を指定します。
@param Boolean code404 - 無効な(使用できない) URL を登録する場合に true を指定します。
                         有効な(使用できる) URL を登録する場合は false を指定します。
</pre>
  </dd>

<!-- -->
  <dt><a name="uuClass.ImgSrcDictionary.in200">uuClass.ImgSrcDictionary.in200</a> - Valid URL exists - 有効な URL が登録されているか</dt>
  <dd><p>uuClass.ImgSrcDictionary.in200(<i>absURL</i>) は <i>absURL</i> が有効なURLで、辞書に登録済みなら true を返します。</p>
<pre>
@param String absURL - 絶対URL( "http://example.com/file.ext" )を指定します。
@return Boolean      - 有効な(使用できる) URL が登録されている場合は true を返します。
</pre>
  </dd>

<!-- -->
  <dt><a name="uuClass.ImgSrcDictionary.get404">uuClass.ImgSrcDictionary.get404</a> - get invalid URL array - 無効な URL の配列を取得する</dt>
  <dd><p>uuClass.ImgSrcDictionary.get404() は 無効なURLの配列を返します。</p>
<pre>
@return Array - 無効な URL を Array( ["<i>URL1</i>", "<i>URL2</i>", ... ] ) で返します。
</pre>
<p><a href="javascript:var imgsrc = uu.imgsrc(['hoge', 'piyo', 'img/c32.png']);(function(){if(imgsrc.loading()){setTimeout(arguments.callee,50);return;}var dict=new uuClass.ImgSrcDictionary();alert(dict.get404().length);})();void 0" class="run">RUN</a>
   無効な URL の数を取得します。</p>
<pre class="eg">
var imgsrc = uu.imgsrc(['hoge', 'piyo', 'img/c32.png']); <u>// 2 invalid url, 1 valid url</u>
(function(){
  if (imgsrc.<b>loading</b>()) { <u>// 読み込み中なら待つ </u>
    setTimeout(arguments.callee, 50);
    return;
  }
  var dict = new uuClass.ImgSrcDictionary();
  alert(dict.<b>get404</b>().length); <u>// 2</u>
})();
</pre>
  </dd>
</dl>

</body>
</html>
